numberFuncs.isNegative   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 4
rs 10
1
/** global: UB */
2
3
var numberFuncs = {
4
	
5
	isOdd: function(){
6
		var val = this;
7
		return (val % 2) != 0;
8
	},
9
	isEven: function(){
10
		var val = this;
11
		return (val % 2) === 0;
12
	},
13
	isPositive: function(){
14
		var val = this;
15
		return (val > 0);
16
	},
17
	isNegative: function(){
18
		var val = this;
19
		return (val < 0);
20
	},
21
	
22
	isNear: function(target, near = 1){
23
		var val = this;
24
		return val >= (target - near) && val <= (target + near);
25
	},
26
	
27
	
28
	isNaN: function(){
29
		var val = this;
30
		return val != val || isNaN(val);
31
	},
32
	
33
	isAny: function(haystacks, asInt = false, fractionalDigits = -1){
34
		var needle = this;
35
		
36
		// return true if any haystack equals the needle
37
		for (var s = 0, sl = haystacks.length;s<sl;s++){
38
			var num = haystacks[s];
39
			
40
			// simplify value for comparison
41
			if (asInt) {
42
				num = int(num);
43
			}else if(fractionalDigits != -1) {
44
				num = num.roundToDigits(fractionalDigits);
45
			}
46
			
47
			if (needle == num) {
48
				return true;
49
			}
50
		}
51
		return false;
52
	},
53
	
54
	/** Checks if the value is within min and max (supporting inclusive/exclusive modes) */
55 View Code Duplication
	isWithin: function(min, max, inclusive = true){
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
56
		var num = this;
57
		if (inclusive) {
58
			if (min > max) {
59
				return (num >= max && num <= min);
60
			}
61
			return (num >= min && num <= max);
62
		}
63
		
64
		if (min > max) {
65
			return (num > max && num < min);
66
		}
67
		return (num > min && num < max);
68
	},
69
	isWithinArray: function(arr){
70
		var slot = this;
71
		
72
		// no, if array empty / index negative / index more than last slot
73
		var len = arr.length;
74
		if (len === 0 || slot < 0 || slot >= len) {
75
			return false;
76
		}
77
		
78
		// else yes
79
		return true;
80
	},
81
	/** Checks if the value is > min and < max */
82
	isBetween: function(min, max){
83
		var num = this;
84
		return (num > min && num < max);
85
	},
86
	isOutside: function(min, max, inclusive = true){
87
		var num = this;
88
		if (inclusive) {
89
			return num <= min || num >= max;
90
		}
91
		return num < min || num > max;
92
	},
93
	isFractional: function(){
94
		var num = this;
95
		return int(num) != num;
96
	},
97
	isInteger: function(){
98
		var num = this;
99
		return int(num) == num;
100
	},
101
	
102
	isConsequetive: function(value, value2){
103
		return value2 == (value - 1) || value2 == (value + 1);
104
	},
105
	
106
107
	none:null
108
};
109
110
// register funcs
111
UB.registerFuncs(Number.prototype, numberFuncs);